package cn.tt.tuantuanerp.tuantuanerp.purchase.service;

import cn.tt.tuantuanerp.tuantuanerp.comment.pojo.dto.PurchaseStandardDTO;
import cn.tt.tuantuanerp.tuantuanerp.comment.pojo.vo.PurchaseDetailVO;
import cn.tt.tuantuanerp.tuantuanerp.comment.pojo.vo.PurchaseStandardListVO;
import cn.tt.tuantuanerp.tuantuanerp.comment.security.LoginPrincipal;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author zms
 * 采购表业务层
 */
@Transactional
public interface IPurchaseService {
    // 单挑新增采购单
    void addPurchase(PurchaseStandardDTO standardDTO, LoginPrincipal loginPrincipal);


    /**
     * @author zms
     * 根据id删除采购单
     */
    void deletePurchase(String id);


    /**
     * @author zms
     * 根据id查询采购单
     */
    PurchaseDetailVO getById(String id, LoginPrincipal loginPrincipal);

    /**
     * @author zms
     * 查询采购列表
     */
    List<PurchaseStandardListVO> list(Integer currentPage, Integer pageSize);

    /**
     * @author zms
     * 查询待采购列表
     */
    List<PurchaseStandardListVO> listPrepare(Integer currentPage, Integer pageSiz );

    /**
     * @author zms
     * 查询采购中列表
     */
    List<PurchaseStandardListVO> listPurchasing(Integer currentPage,Integer pageSiz );

    /**
     * @author zms
     * 查询已完成采购列表
     */
    List<PurchaseStandardListVO> listFinished( Integer currentPage,Integer pageSiz);


    /**
     * @author zms
     * 修改状态为采购中
     */
    void updateStateToPurchasing(String id);


    /**
     * @author zms
     * 修改状态为已完成
     */
    void updateStateToFinish(String id);


    /**
     * @author zms
     * 获取分页总数据量
     */
    int totalData(Integer index);

    /**
     * @author zms
     * 入库
     */
    void  stockIn(String purchaseId,LoginPrincipal loginPrincipal);

    /**
     * @author zms
     * 采购
     */
    void  purchasing(String purchaseId,LoginPrincipal loginPrincipal);

    /**
     * @author zms
     * 修改采购单信息
     */
    void   updatePurchase(String purchaseId,LoginPrincipal loginPrincipal);

}
